package com.liveinstars.im.core.service;

import com.liveinstars.im.domain.dao.model.Friends;
import com.liveinstars.api.im.vo.UserVO;

import java.util.List;

/**
 * @author: zhouze
 * @date: 2020/4/27
 */
public interface FriendsService {


    /**
     * 根据用户id和好友类型获取用户的好友列表
     * @param userId
     * @param type
     * @return
     */
    List<Friends> listByUserIdAndType(Long userId, Integer type);

    /**
     * 返回带用户属性的好友列表
     * @param userId
     * @param type
     * @return
     */
    List<UserVO> listFriendsByUserIdAndType(Long userId, Integer type);

    /**
     * 判断是否是好友
     * @param userIdA
     * @param userIdB
     * @param type 1-好友 2-临时好友
     * @return
     */
    boolean isFriends(Long userIdA, Long userIdB, Integer type);

    /**
     * 创建好友关系
     * @param userIdA
     * @param userIdB
     * @param type 1-好友 2-临时好友
     */
    void makeFriends(Long userIdA, Long userIdB, Integer type);

    /**
     * 删除好友关系
     * @param userId
     * @param friendsUserId
     */
    void deleteFriends(Long userId, Long friendsUserId);

    /**
     * 屏蔽好友
     * @param userId
     * @param friendsUserId
     */
    void shieldFriends(Long userId, Long friendsUserId);

    /**
     * 更新好友信息
     * @param userId
     * @param friendId
     * @param friends
     */
    void updateFriendsByUserIdAndFriendId(Long userId, Long friendId, Friends friends);

    /**
     * 获取好友信息
     * @param userId
     * @param friendId
     * @return
     */
    Friends getFriendsByUserIdAndFriendId(Long userId, Long friendId);



}
